/*
 * WSO2 API Manager - Publisher API
 * This specifies a **RESTful API** for WSO2 **API Manager** - Publisher.  Please see [full swagger definition](https://raw.githubusercontent.com/wso2/carbon-apimgt/v6.0.4/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher/src/main/resources/publisher-api.yaml) of the API which is written using [swagger 2.0](http://swagger.io/) specification. 
 *
 * OpenAPI spec version: 0.10.0
 * Contact: architecture@wso2.com
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


package org.wso2.carbon.apimgt.rest.integration.tests.api;

import org.wso2.carbon.apimgt.rest.integration.tests.ApiException;
import org.wso2.carbon.apimgt.rest.integration.tests.model.Document;
import java.io.File;
import org.junit.Test;

/**
 * API tests for DocumentIndividualApi
 */
public class DocumentIndividualApiIT {

    private final DocumentIndividualApi api = new DocumentIndividualApi();

    
    /**
     * Get the content of an API document
     *
     * This operation can be used to retrive the content of an API&#39;s document.  The document can be of 3 types. In each cases responses are different.  1. **Inline type**:    The content of the document will be retrieved in &#x60;text/plain&#x60; content type 2. **FILE type**:    The file will be downloaded with the related content type (eg. &#x60;application/pdf&#x60;) 3. **URL type**:     The client will recieve the URL of the document as the Location header with the response with - &#x60;303 See Other&#x60; 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void apisApiIdDocumentsDocumentIdContentGetTest() throws ApiException {
        String apiId = null;
        String documentId = null;
        String accept = null;
        String ifNoneMatch = null;
        String ifModifiedSince = null;
        // api.apisApiIdDocumentsDocumentIdContentGet(apiId, documentId, accept, ifNoneMatch, ifModifiedSince);

        // TODO: test validations
    }
    
    /**
     * Upload the content of an API document
     *
     * Thid operation can be used to upload a file or add inline content to an API document.  **IMPORTANT:** * Either **file** or **inlineContent** form data parameters should be specified at one time. * Document&#39;s source type should be **FILE** in order to upload a file to the document using **file** parameter. * Document&#39;s source type should be **INLINE** in order to add inline content to the document using **inlineContent** parameter. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void apisApiIdDocumentsDocumentIdContentPostTest() throws ApiException {
        String apiId = null;
        String documentId = null;
        String contentType = null;
        File file = null;
        String inlineContent = null;
        String ifMatch = null;
        String ifUnmodifiedSince = null;
        // Document response = api.apisApiIdDocumentsDocumentIdContentPost(apiId, documentId, contentType, file, inlineContent, ifMatch, ifUnmodifiedSince);

        // TODO: test validations
    }
    
    /**
     * Delete a document of an API
     *
     * This operation can be used to delete a document associated with an API. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void apisApiIdDocumentsDocumentIdDeleteTest() throws ApiException {
        String apiId = null;
        String documentId = null;
        String ifMatch = null;
        String ifUnmodifiedSince = null;
        // api.apisApiIdDocumentsDocumentIdDelete(apiId, documentId, ifMatch, ifUnmodifiedSince);

        // TODO: test validations
    }
    
    /**
     * Get a document of an API
     *
     * This operation can be used to retrieve a particular document&#39;s metadata associated with an API. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void apisApiIdDocumentsDocumentIdGetTest() throws ApiException {
        String apiId = null;
        String documentId = null;
        String accept = null;
        String ifNoneMatch = null;
        String ifModifiedSince = null;
        // Document response = api.apisApiIdDocumentsDocumentIdGet(apiId, documentId, accept, ifNoneMatch, ifModifiedSince);

        // TODO: test validations
    }
    
    /**
     * Update a document of an API
     *
     * This operation can be used to update metadata of an API&#39;s document. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void apisApiIdDocumentsDocumentIdPutTest() throws ApiException {
        String apiId = null;
        String documentId = null;
        Document body = null;
        String contentType = null;
        String ifMatch = null;
        String ifUnmodifiedSince = null;
        // Document response = api.apisApiIdDocumentsDocumentIdPut(apiId, documentId, body, contentType, ifMatch, ifUnmodifiedSince);

        // TODO: test validations
    }
    
}
